Field of the Invention
The present invention relates to the field of data synchronization and more particularly to the use of a synchronization framework to provide data synchronization services.
Description of the Related Art
Personal computers no longer are the most common vehicle through which users connect to data communications networks like the Internet. Now that computing can be viewed as being truly everywhere, computer scientists and information technologists have begun to rethink those services that can be provided to meet the needs of mobile computing users. In consequence, the study of pervasive computing has resulted in substantial innovation in the field of network connectivity. “Pervasive computing” has been defined as referring to any non-constrained computing device not physically tethered to a data communications network. Thus, pervasive computing devices refer not only to computers wirelessly linked to networks, but also to handheld computing devices, wearable systems, embedded computing systems and the like.
Most pervasive devices, including notebook computers, handheld computers and even data enabled cellular telephones permit data synchronization with a different computing device, for example a desktop computer. Data synchronization refers to the harmonization of data between two data sources such that the data contained in each data source can be reconciled notwithstanding changes to the data applied in either or both of the data sources. Modern pervasive devices provide for a synchronization process through a direct cable link, a modem link, or a network link to a host computing device. Wireless pervasive devices further can accommodate synchronization over infrared or radio frequency links.
To facilitate the synchronization of disparate devices hosting different applications, synchronization frameworks like the framework specified by “SyncML” have been proposed. Generally, a synchronization framework defines an interoperable protocol for data synchronization between heterogeneous data stores on pervasive devices and connected servers. Such synchronization frameworks further define the message exchange between client and server to accomplish synchronization. Yet, by design, synchronization frameworks do not specify the actual process required to accomplish synchronization.
Contemporary protocol synchronization frameworks facilitate the harmonization of data in the data stores of a local and host device over a communications medium such as a wireless link. In the ordinary course of synchronization, a client device retrieves data updates since a last synchronization from the local data store and provides those updates to the host device. The host device applies the updates to the host data store and provides updates since the last synchronization from the host data store to the client device. To identify updated data, the host device relies upon local identifiers previously provided by the client device.
The client, upon receipt of the host updates, iterates through each update applying the same to the local data store. Only once all updates have been applied locally, will the client device provide updated mapping information to the host device in order to facilitate subsequent synchronizations. As such, it will be recognized by the skilled artisan that the serial nature of client side updates and the heavy reliance upon providing a local identifier mapping can render contemporary synchronization protocols susceptible to failure conditions and slow responsiveness. Additionally, the skilled artisan will recognize that processing in the client device can be slow compared to processing in the server and the network link further can inhibit the speed of synchronization.
Specifically, where the communications link becomes interrupted mid-synchronization, all progress will be lost. Moreover, in as much as the client device must await the completion of the update process in the local data store before forwarding the local identifier mapping to the host device, substantial delays can be incurred where the update process is slow due to the nature of an applicable pervasive device. Finally, contemporary synchronization protocols fail to account for the reality of traffic transfer with the bulk of the update traffic in a synchronization process stemming from the host device rather than the client device.